// g++ ./bigsortb.cpp -std=c++11 -lpthread; ./a.out
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
#include <chrono>

int main() {
    const int SIZE = 200000000;
    std::vector<int> numbers(SIZE);

    // 使用当前时间作为随机数生成器的种子
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 2000000000);  // 生成1到90000000之间的随机整数

    // 开始计时
    auto start = std::chrono::high_resolution_clock::now();

    // 生成随机数
    for (int i = 0; i < SIZE; ++i) {
        numbers[i] = dis(gen);
    }

    // 排序
    std::sort(numbers.begin(), numbers.end());

    // 结束计时
    auto end = std::chrono::high_resolution_clock::now();

    // 计算耗时
    std::chrono::duration<double> diff = end - start;

    std::cout << "生成和排序 " << SIZE << " 个随机整数所需时间: " 
              << diff.count() << " 秒" << std::endl;

    return 0;
}
